// 
// Copyright (C) 2000-2003
// magustek co.
//

#ifndef MAGUS_THREAD_EXCEPTIONS_H
#define MAGUS_THREAD_EXCEPTIONS_H

#include <magus/config.hpp>
#include <magus/thread/detail/config.hpp>

//  pdm: Sorry, but this class is used all over the place & I end up
//       with recursive headers if I don't separate it
//  wek: Not sure why recursive headers would cause compilation problems
//       given the include guards, but regardless it makes sense to
//       seperate this out any way.

#include <stdexcept>
#include <string>

namespace magus {

class MAGUS_THREAD_DECL lock_error : public std::logic_error
{
public:
    lock_error(): std::logic_error("thread lock error")
	{
	}
};

class MAGUS_THREAD_DECL thread_resource_error : public std::runtime_error
{
public:
    thread_resource_error(): std::runtime_error("thread resource error")
	{
	}
};

} // namespace magus

// Change Log:
//    16 JUN 03  Initial version.

#endif // MAGUS_THREAD_EXCEPTIONS_H
